1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.savedstatuses;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.glist;
34 import derelict.purple.status;
35 import derelict.purple.account;
36 import core.stdc.time;
37 
38 extern (C):
39 
40 alias _PurpleSavedStatus PurpleSavedStatus;
41 alias _PurpleSavedStatusSub PurpleSavedStatusSub;
42 
43 struct _PurpleSavedStatus;
44 
45 
46 struct _PurpleSavedStatusSub;
47 
48 
49 version(Derelict_Link_Static)
50 {
51     extern( C ) nothrow 
52     {
53 	    PurpleSavedStatus* purple_savedstatus_new(const(char)* title, PurpleStatusPrimitive type);
54         void purple_savedstatus_set_title(PurpleSavedStatus* status, const(char)* title);
55         void purple_savedstatus_set_type(PurpleSavedStatus* status, PurpleStatusPrimitive type);
56         void purple_savedstatus_set_message(PurpleSavedStatus* status, const(char)* message);
57         void purple_savedstatus_set_substatus(PurpleSavedStatus* status, const(PurpleAccount)* account, const(PurpleStatusType)* type, const(char)* message);
58         void purple_savedstatus_unset_substatus(PurpleSavedStatus* saved_status, const(PurpleAccount)* account);
59         gboolean purple_savedstatus_delete(const(char)* title);
60         void purple_savedstatus_delete_by_status(PurpleSavedStatus* saved_status);
61         GList* purple_savedstatuses_get_all();
62         GList* purple_savedstatuses_get_popular(uint how_many);
63         PurpleSavedStatus* purple_savedstatus_get_current();
64         PurpleSavedStatus* purple_savedstatus_get_default();
65         PurpleSavedStatus* purple_savedstatus_get_idleaway();
66         gboolean purple_savedstatus_is_idleaway();
67         void purple_savedstatus_set_idleaway(gboolean idleaway);
68         PurpleSavedStatus* purple_savedstatus_get_startup();
69         PurpleSavedStatus* purple_savedstatus_find(const(char)* title);
70         PurpleSavedStatus* purple_savedstatus_find_by_creation_time(time_t creation_time);
71         PurpleSavedStatus* purple_savedstatus_find_transient_by_type_and_message(PurpleStatusPrimitive type, const(char)* message);
72         gboolean purple_savedstatus_is_transient(const(PurpleSavedStatus)* saved_status);
73         const(char)* purple_savedstatus_get_title(const(PurpleSavedStatus)* saved_status);
74         PurpleStatusPrimitive purple_savedstatus_get_type(const(PurpleSavedStatus)* saved_status);
75         const(char)* purple_savedstatus_get_message(const(PurpleSavedStatus)* saved_status);
76         time_t purple_savedstatus_get_creation_time(const(PurpleSavedStatus)* saved_status);
77         gboolean purple_savedstatus_has_substatuses(const(PurpleSavedStatus)* saved_status);
78         PurpleSavedStatusSub* purple_savedstatus_get_substatus(const(PurpleSavedStatus)* saved_status, const(PurpleAccount)* account);
79         const(PurpleStatusType)* purple_savedstatus_substatus_get_type(const(PurpleSavedStatusSub)* substatus);
80         const(char)* purple_savedstatus_substatus_get_message(const(PurpleSavedStatusSub)* substatus);
81         void purple_savedstatus_activate(PurpleSavedStatus* saved_status);
82         void purple_savedstatus_activate_for_account(const(PurpleSavedStatus)* saved_status, PurpleAccount* account);
83         void* purple_savedstatuses_get_handle();
84         void purple_savedstatuses_init();
85         void purple_savedstatuses_uninit();
86     }
87 }
88 else
89 {
90     extern( C ) nothrow 
91     {
92 	    alias da_purple_savedstatus_new = PurpleSavedStatus* function(const(char)* title, PurpleStatusPrimitive type);																
93         alias da_purple_savedstatus_set_title = void function(PurpleSavedStatus* status, const(char)* title);																		
94         alias da_purple_savedstatus_set_type = void function(PurpleSavedStatus* status, PurpleStatusPrimitive type);																
95         alias da_purple_savedstatus_set_message = void function(PurpleSavedStatus* status, const(char)* message);																	
96         alias da_purple_savedstatus_set_substatus = void function(PurpleSavedStatus* status, const(PurpleAccount)* account, const(PurpleStatusType)* type, const(char)* message);	
97         alias da_purple_savedstatus_unset_substatus = void function(PurpleSavedStatus* saved_status, const(PurpleAccount)* account);												
98         alias da_purple_savedstatus_delete = gboolean function(const(char)* title);																									
99         alias da_purple_savedstatus_delete_by_status = void function(PurpleSavedStatus* saved_status);																				
100         alias da_purple_savedstatuses_get_all = GList* function();																													
101         alias da_purple_savedstatuses_get_popular = GList* function(uint how_many);																									
102         alias da_purple_savedstatus_get_current = PurpleSavedStatus* function();																									
103         alias da_purple_savedstatus_get_default = PurpleSavedStatus* function();																									
104         alias da_purple_savedstatus_get_idleaway = PurpleSavedStatus* function();																									
105         alias da_purple_savedstatus_is_idleaway = gboolean function();																												
106         alias da_purple_savedstatus_set_idleaway = void function(gboolean idleaway);																								
107         alias da_purple_savedstatus_get_startup = PurpleSavedStatus* function();																									
108         alias da_purple_savedstatus_find = PurpleSavedStatus* function(const(char)* title);																							
109         alias da_purple_savedstatus_find_by_creation_time = PurpleSavedStatus* function(time_t creation_time);																		
110         alias da_purple_savedstatus_find_transient_by_type_and_message = PurpleSavedStatus* function(PurpleStatusPrimitive type, const(char)* message);								
111         alias da_purple_savedstatus_is_transient = gboolean function(const(PurpleSavedStatus)* saved_status);																		
112         alias da_purple_savedstatus_get_title = const(char)* function(const(PurpleSavedStatus)* saved_status);																		
113         alias da_purple_savedstatus_get_type = PurpleStatusPrimitive function(const(PurpleSavedStatus)* saved_status);																
114         alias da_purple_savedstatus_get_message = const(char)* function(const(PurpleSavedStatus)* saved_status);																	
115         alias da_purple_savedstatus_get_creation_time = time_t function(const(PurpleSavedStatus)* saved_status);																	
116         alias da_purple_savedstatus_has_substatuses = gboolean function(const(PurpleSavedStatus)* saved_status);																	
117         alias da_purple_savedstatus_get_substatus = PurpleSavedStatusSub* function(const(PurpleSavedStatus)* saved_status, const(PurpleAccount)* account);							
118         alias da_purple_savedstatus_substatus_get_type = const(PurpleStatusType)* function(const(PurpleSavedStatusSub)* substatus);													
119         alias da_purple_savedstatus_substatus_get_message = const(char)* function(const(PurpleSavedStatusSub)* substatus);															
120         alias da_purple_savedstatus_activate = void function(PurpleSavedStatus* saved_status);																						
121         alias da_purple_savedstatus_activate_for_account = void function(const(PurpleSavedStatus)* saved_status, PurpleAccount* account);											
122         alias da_purple_savedstatuses_get_handle = void* function();																												
123         alias da_purple_savedstatuses_init = void function();																														
124         alias da_purple_savedstatuses_uninit = void function();	
125     }
126 
127     __gshared
128     {
129 	    da_purple_savedstatus_new purple_savedstatus_new;
130 	    da_purple_savedstatus_set_title purple_savedstatus_set_title;
131 	    da_purple_savedstatus_set_type purple_savedstatus_set_type;
132 	    da_purple_savedstatus_set_message purple_savedstatus_set_message;
133 	    da_purple_savedstatus_set_substatus purple_savedstatus_set_substatus;
134 	    da_purple_savedstatus_unset_substatus purple_savedstatus_unset_substatus;
135 	    da_purple_savedstatus_delete purple_savedstatus_delete;
136 	    da_purple_savedstatus_delete_by_status purple_savedstatus_delete_by_status;
137 	    da_purple_savedstatuses_get_all purple_savedstatuses_get_all;
138 	    da_purple_savedstatuses_get_popular purple_savedstatuses_get_popular;
139 	    da_purple_savedstatus_get_current purple_savedstatus_get_current;
140 	    da_purple_savedstatus_get_default purple_savedstatus_get_default;
141 	    da_purple_savedstatus_get_idleaway purple_savedstatus_get_idleaway;
142 	    da_purple_savedstatus_is_idleaway purple_savedstatus_is_idleaway;
143 	    da_purple_savedstatus_set_idleaway purple_savedstatus_set_idleaway;
144 	    da_purple_savedstatus_get_startup purple_savedstatus_get_startup;
145 	    da_purple_savedstatus_find purple_savedstatus_find;
146 	    da_purple_savedstatus_find_by_creation_time purple_savedstatus_find_by_creation_time;
147 	    da_purple_savedstatus_find_transient_by_type_and_message purple_savedstatus_find_transient_by_type_and_message;
148 	    da_purple_savedstatus_is_transient purple_savedstatus_is_transient;
149 	    da_purple_savedstatus_get_title purple_savedstatus_get_title;
150 	    da_purple_savedstatus_get_type purple_savedstatus_get_type;
151 	    da_purple_savedstatus_get_message purple_savedstatus_get_message;
152 	    da_purple_savedstatus_get_creation_time purple_savedstatus_get_creation_time;
153 	    da_purple_savedstatus_has_substatuses purple_savedstatus_has_substatuses;
154 	    da_purple_savedstatus_get_substatus purple_savedstatus_get_substatus;
155 	    da_purple_savedstatus_substatus_get_type purple_savedstatus_substatus_get_type;
156 	    da_purple_savedstatus_substatus_get_message purple_savedstatus_substatus_get_message;
157 	    da_purple_savedstatus_activate purple_savedstatus_activate;
158 	    da_purple_savedstatus_activate_for_account purple_savedstatus_activate_for_account;
159 	    da_purple_savedstatuses_get_handle purple_savedstatuses_get_handle;
160 	    da_purple_savedstatuses_init purple_savedstatuses_init;
161 	    da_purple_savedstatuses_uninit purple_savedstatuses_uninit;
162     }
163 }